package com.pureut.quality.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pureut.quality.domain.QualityInspectionDocument;
import com.pureut.quality.domain.dto.*;
import com.pureut.quality.domain.vo.QualityInspectionDocumentVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/***
 * 检验单据mapper
 * Author:C
 * Date:2023/02/06 10:30
 * @DESC
 */
@Mapper
public interface QualityInspectionDocumentMapper extends BaseMapper<QualityInspectionDocument> {

    /**
     * 获取检验单据列表
     */
    List<QualityInspectionDocumentDto> getList(QualityInspectionDocumentVo qualityInspectionDocumentVo);

    /**
     * 根据id获取详细信息
     */
    QualityInspectionDocumentDto getViewById(Long id);

    /**
     * 甲，乙班合格数量
     * @param dateTime
     * @return
     */
    YieldCountDto selectYield(@Param("dateTime") String dateTime,@Param("groupCode") String groupCode);

    /**
     * 生产看板-本月品质不良分布
     * @param month
     * @return
     */
    List<BadMonthDto> getBadMonth(int month);

    /**
     * 检验单总数
     * @return
     */
    Long getSumInspection();

    /**
     * 48小时待检验，待审核，待处理个数
     * @return
     */
    InspectionDocumentStatisticsDto getInspectionNum();

    /**
     * 逾期未检验单
     * @return
     */
    Long getOverdue();

    /**
     * 品质看板-48小时内检验单据信息
     * @return
     */
    List<inspectionHoursInfoDto> inspectionHoursInfo();

    /**
     * 待操作单据统计
     * @return
     */
    DocumentStaticsDto selectDocumentStatus(String itemRank);

    long getYield(@Param("date") String date,@Param("rank") String rank);

    long getSumRank(@Param("date") String date,@Param("rank") String rank);

    /**
     * 查询某阶别下对应不良名称和不良数量
     * @param rank
     * @return
     */
    List<TopFiveBadDto> getBadInspection();

    /**
     * 查询近7天的班组信息
     * @return
     */
    List<QualityGroupDto> getGroupCodeList(String lineCode);
}
